/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package moonnms.libs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import moonnms.libs.config.NMSConfigDatabase;

/**
 *
 * @author Di_Moon
 */
public class libNMSDBConnection {
    protected Connection conn = null;
    private NMSConfigDatabase cfg = new NMSConfigDatabase();
    
    // Конструктор. Вызывает подключение к БД
    public libNMSDBConnection() {
        connect();
    }
    
    // Функция подключения к бд. возвращает true, если подключение успешно
    public boolean connect() {
        String url = "jdbc:"+cfg.get("dbtype")+"://"+cfg.get("dbhost")+"/"+cfg.get("dbname");
        
        try {
            conn = DriverManager.getConnection(url, cfg.get("dbuser"), cfg.get("dbpass"));
            
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    
    // Функция перечитки файла конфигурации
    public void cfgUpdate() {
        cfg = null;
        cfg = new NMSConfigDatabase();
    }
    
    // Функция проверки соединения с БД. Если соединение разорвано, то установим его заного
    public void checkConnection() {
        try {
            if(!conn.isValid(0)) {
                connect();
            }
        } catch (SQLException ex) {
            Logger.getLogger(libNMSDBConnection.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
